延后执行一个PHP
函数。底层会在EventLoop
循环完成后执行此函数。此函数的目的是为了让一些PHP
代码延后执行,程序优先处理IO
事件。底层不保证defer
的函数会立即执行,如果是系统关键逻辑,需要尽快执行,请使用after
定时器实现。
function Server->defer(callable $callback);
defer
函数的别名是swoole_event_defer
$callback
为可执行的函数变量,可以是字符串、数组、匿名函数- 在
onWorkerStart
回调中执行defer
时,必须要等到有事件发生才会回调
defer
函数在1.8.0
或更高版本可用
function query($server, $db) {
$server->defer(function() use ($db) {
$db->close();
});
}